package com.zxl.manager.privacy.utils.utils;

/**
 * 按照需求定义的4种温度状态<br>
 * 
 * @author laojiale
 *
 */
public enum TemperatureState {
	/**
	 * 温度>10°C && < 42°C
	 */
	State1,
	/**
	 * 温度>=42°C && < 50°C
	 */
	State2,
	/**
	 * 温度>=50°C && < 90°C
	 */
	State3,
	/**
	 * 温度>=90°C || <= 10°C, 或获取不到温度，示为无效温度<br>
	 */
	State4;

	/**
	 * 根据温度得出一个温度状态<br>
	 * 
	 * @param temperature
	 *            温度
	 * @return
	 */
	public static TemperatureState getTemperatureState(Temperature temperature) {
		TemperatureState state = State4;
		if (temperature == null) {
			return state;
		}
		temperature.toCelsius();
		final int celsiusTemperature = temperature.getIntValue();
		if (celsiusTemperature > 10 && celsiusTemperature < 42) {
			state = State1;
		} else if (celsiusTemperature >= 42 && celsiusTemperature < 50) {
			state = State2;
		} else if (celsiusTemperature >= 50 && celsiusTemperature < 90) {
			state = State3;
		}
		return state;
	}

	/**
	 * 判断温度是否有效
	 * 
	 * @param temperature
	 * @return true表示有效
	 */
	public static boolean isTemperatureValid(Temperature temperature) {
		return !State4.equals(getTemperatureState(temperature));
	}

}
